System and method for location-based reminders on a mobile device

ABSTRACT

A system and method are described for processing location-based reminders. For example, a system according to one embodiment of the invention comprises: a location database to store a plurality of different locations including event facilities, points of interest, and one or more personal locations specified by an end user, the location database associating each of the different locations with a Global Positioning System (GPS) location or range of GPS locations; a location-based reminder application to receive user input related to one or more location-based reminders, each location-based reminder associating a particular location from the location database with reminder data input by the user; and wherein, in response to detecting the user&#39;s mobile device arriving within a particular location associated with the reminder data, the location-based reminder application triggering the reminder using a visual and/or audible notification on the user&#39;s mobile device.

BACKGROUND

1. Field of the Invention

The invention relates generally to the field of network data processingsystems. More particularly, one embodiment of the invention relates toan architecture and method for analyzing user location and associatedactivity and responsively providing mobile device updates. Additionally,one embodiment of the invention relates to an architecture and methodfor determining an event which a user is attending based on location,date and time data. Finally, one embodiment of the invention relates toa location-based reminder system.

2. Description of Related Art

Current location-based technologies such as GPS (Global PositioningSystem) allow the location of a mobile device to be precisely trackedand used in a variety of applications. By way of example, location datagenerated by GPS-enabled mobile devices may be used by mapping programswhich identify the current location of the mobile device on a map. Inaddition, some mobile devices may be configured to share the currentlocation of a user with the user's “friends,” either by publishing theuser's current location to a Website or by dynamically transmitting theuser's current location to other mobile devices. For example, the Loopt®application for the iPhone® allows a user to identify a set of “friends”to receive continuous updates of the user's current location within amap-based graphical user interface.

However, current location-based systems do not compile location data fora user over time to determine the user's behavior patterns while atdifferent locations. Additionally, current location-based system do notcombine location data with the current date and time to determine thecontext in which the user is at a particular location. Such informationwould be useful, for example, to provide targeted content to the enduser while at different locations on specific dates and times and/or toprovide targeted content based on the anticipated daily or weeklyschedule of the end user.

SUMMARY

A system and method are described for processing location-basedreminders. For example, a system according to one embodiment of theinvention comprises: a location database to store a plurality ofdifferent locations including event facilities, points of interest, andone or more personal locations specified by an end user, the locationdatabase associating each of the different locations with a GlobalPositioning System (GPS) location or range of GPS locations; alocation-based reminder application to receive user input related to oneor more location-based reminders, each location-based reminderassociating a particular location from the location database withreminder data input by the user; and wherein, in response to detectingthe user's mobile device arriving within a particular locationassociated with the reminder data, the location-based reminderapplication triggering the reminder using a visual and/or audiblenotification on the user's mobile device.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained from thefollowing detailed description in conjunction with the followingdrawings, in which:

FIG. 1 illustrates a network architecture employed in one embodiment ofthe invention.

FIG. 2 illustrates one embodiment of a system architecture formonitoring user activity at various locations over time and responsivelytransmitting anticipating subsequent user behavior and transmittingtargeted content to the user.

FIG. 3 illustrates an example of location and activity data associatedwith an end user.

FIG. 4 illustrates one embodiment of a system architecture fordetermining an event that a user is attending and transmitting targetedcontent to the user.

FIG. 5 illustrates event data managed in one embodiment of theinvention.

FIG. 6 illustrates a system architecture for generating location-basedreminders according to one embodiment of the invention.

FIG. 7 illustrates location-based reminder data employed in oneembodiment of the invention.

FIG. 8 illustrates a graphical user interface (GUI) for setting alocation-based reminder.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Described below is a system and method for intelligently distributingcontent to an end user based on both a particular location of the userand a date/time at which the user is at, or scheduled to be at, theparticular location. Throughout the description, for the purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the present invention. It will be apparent,however, to one skilled in the art that the present invention may bepracticed without some of these specific details. In other instances,well-known structures and devices are shown in block diagram form toavoid obscuring the underlying principles of the present invention.

One embodiment of the invention compiles location data for a user overtime to determine the user's daily/weekly schedule and behavior patterns(described generally below as “user activity data”). Once a user'sschedule and behavior patterns have been identified, one embodiment ofthe invention uses this information to schedule targeted contentdistributions to the user's mobile device. For example, one embodimentof the system analyzes user data to predict where the user will be at aparticular date/time and schedules targeted content based on theprediction. Additionally, one embodiment of the invention combineslocation data with event data (including date and time information) todetermine the context in which the user is at a particular location.Based on the context, targeted content associated with that context istransmitted to the end user's mobile device. In addition, in oneembodiment of the invention allows end users to trigger personalreminders upon arriving at particular locations (rather than limitingpersonal reminders to particular user-specified dates/times). Thepersonal reminders may be programmed from within a calendar applicationor other type of application.

A. Pre-Caching of Targeted Content to a Mobile Device Based on PredictedUser Activity and/or Location

Referring now to FIG. 1, one embodiment of the invention is implementedwithin a data processing service 100 communicating over a data network120 such as the Internet to one or more wireless service providers 101and 102. The wireless service providers 101 and 102 provide wirelessservice to a plurality of wireless devices 106 and 107, respectively.The wireless networks 121 and 122 of the wireless service providers 101and 102 support both voice and data traffic. In one embodiment, the datatraffic is implemented using one of a variety of 3G wireless networkprotocols including, by way of example, GSM EDGE, UMTS, CDMA2000, DECTand/or WiMAX. It should be noted, however, that the underlyingprinciples of the invention are not limited to any particular wirelesscommunication standard.

Mobile devices 106 and 107 communicate with the data processing service100 through the wireless networks 121 and 122 and data network 120. Inone embodiment, users may also connect to the data processing service100 via a standard personal computer 110 (e.g., a Windows-based computeror Macintosh) equipped with an Internet browser 115 or other applicationprogram. The browser connection may be used, for example, to manage useraccount data (e.g., system configuration preferences) and/or personaldata (e.g., contact data, calendar data, buddy lists, etc) on the dataprocessing service 100.

In one embodiment of the invention, the wireless devices 106 and 107 areequipped with location tracking capabilities such as GPS. As illustratedin FIG. 2, in this embodiment, the location tracking capabilities areimplemented by location tracking circuitry and software 205 on themobile device 106, which collects and reports the mobile device'scurrent location to the data processing service 100 (i.e., over thevarious wireless and wired networks, not shown in FIG. 2 forsimplicity). In addition, in one embodiment, a user activity trackingmodule 206 collects and reports user activity on the mobile device 106.User activity may include, for example, specific applications executedon the mobile device (e.g., games, word processing applications, etc),the operations performed by those applications (e.g., results of aparticular game), particular Web sites visited by the user, and messagestransmitted to and from the wireless device. A data collection module210 on the data processing service 100 actively collects the locationtracking data and user activity data and stores this information withina database 215 (shown in FIG. 2 as user location and activity data 220).

The data collection module 210 may determine the mobile device's currentlocation and associated activity continuously, periodically (e.g., onceevery 15 minutes), or as the user's location changes. Moreover, thecurrent location may be collected via either a “pull” technique, inwhich the data collection module 210 explicitly requests the currentlocation (and the location tracking module 205 on the mobile device 106responsively provides the current location); or the location trackingmodule 205 may actively “push” its current location to the datacollection module 210 (without a request from the data collection module210).

In one embodiment, the database 215 is used for all persistent storageon the data processing service 100. Various different technologies maybe used to implement the database 215 including, for example, MySQL andMicrosoft SQL. Of course, the underlying principles of the invention arenot limited to any particular database technology.

A location database 221 is maintained on the data processing service 100which stores known location names and associated attributes for thoselocations. A virtually unlimited number of relevant locations may bestored within the location database 221 including, for example, eventfacilities, restaurants, bus/train stops, and various points of interest(e.g., museums, parks, coffee shops, bowling alleys, etc). In oneembodiment, the location database 221 includes the same types oflocation data as currently found, for example, in Google® Maps andYahoo® Maps. In addition, in one embodiment, the location database 221is continually updated with the current conditions associated with eachlocation including, for example, wireless service coverage and/ortraffic information. For example, if an event facility is known to havedegraded wireless coverage, this information is stored in the locationdatabase 221 and subsequently utilized by the embodiments of theinvention described herein. Similarly, if a traffic accident hasoccurred or if a train is running late, this information may also beupdated within the location database 221.

In one embodiment, the user may enter one or more personal locationswithin the location database 221 and/or within a separate user data 242.For example, the user may specify the location of the user's home andplace of business. This information is then used to identify when theuser is at one of the personal locations, as described below.

In one embodiment, the location tracking module 205 on the mobile device106 provides location data to the data processing service 100 in astandard latitude/longitude format. The data collection module 210queries the location database 221 using the location data to identifythe point of interest, event facility, etc, associated with thatlocation. Alternatively, the location tracking module 205 on the mobiledevice 106 utilizes a local location database (not shown) to determinethe point of interest, etc, and reports this information directly to thedata collection module 210. In such a case, the location database 221 onthe data processing service need not be utilized.

In one embodiment, the predictive scheduler module 230 uses thepredicted user location, activity and wireless signal strength togenerate a content distribution schedule 240 for transmitting targetedcontent 245 to the end user. For example, if the location database 221indicates that the Caltrain station in San Francisco has a coffee shop,then a user update module 250 on the data processing service 100 maytransmit an electronic “coupon” for a free cup of coffee prior to 8:00AM. In one embodiment, the electronic coupon includes a bar codedisplayed on the mobile device's display which may be read by an opticalscanner at the point of sale. When the coupon is used, this informationis transmitted from the point of sale back to the data processingservice 100 and stored as user data 242 for subsequent targeted contentdistributions. If the Caltrain station in San Francisco is known to havea poor wireless signal, then the predictive scheduler module 230 maypre-cache the targeted content 245 to the mobile device 106 prior to theuser's arrival at the Caltrain station (e.g., a specified amount of timeprior to 8:00 AM and/or when the mobile device 106 is detected within aspecified range of the Caltrain station).

As illustrated in FIG. 3, the location is stored in the form of alocation name (e.g., event facility, point of interest, etc), ratherthan merely a raw location value (e.g., longitude/latitude). The useractivity stored in the database includes a listing of all relevantoperations performed on the data processing device since the last timeuser activity was checked. The wireless signal strength associated witheach location is continually updated and archived within the userlocation and activity data 220. The end result is a precise picture ofthe user's daily location, associated activities and wireless signalstrength. As described below, the embodiments of the invention utilizethis information to provide targeted content to the end user at certainspecified times, locations, and/or while performing certain activitieson the mobile device 106. In one embodiment, the user activities areanalyzed to determine appropriate promotions and other content todeliver to the end user. For example, if the user frequently plays videogames on the way to work, this information may be used to generatepromotions or other content related to games and/or the characters inthe video games during this period of time. Similarly, if the user oftenlistens to a particular band, this information may be used to identifyand transmit content related to the band (e.g., promotions, new tracks,etc).

More specifically, as illustrated in FIG. 2, a predictive schedulermodule 230 analyzes the user activity data 220 to determine periodictrends and to anticipate subsequent user behavior. For example, thepredictive scheduler module 230 may determine that the user's scheduleremains relatively consistent at certain times during the work week(e.g., Monday through Friday they user may commute to work at the sametime each day). It then identifies certain times each day at which theuser is likely to be at certain locations. For example, if the userfollows the same basic commute schedule each workday, as determined byevaluating the data shown in FIG. 3, then it may be assumed that at 8:00AM each day, the user will be waiting at the Caltrain station in SanFrancisco. In one embodiment, the user's activity is also analyzed bythe predictive scheduler module 230 to predict subsequent activities bythe user. By way of example, the user may often be performing the sameactivity at a certain point during the day (e.g., checking email whilewaiting at the Caltrain station).

In one embodiment, the predictive scheduler module 230 uses thepredicted user location, activity and wireless signal strength togenerate a content distribution schedule 240 for transmitting targetedcontent 245 to the end user. For example, if the location database 221indicates that the Caltrain station in San Francisco has a coffee shop,then a user update module 250 on the data processing service 100 maytransmit an electronic “coupon” for a free cup of coffee prior to 8:00AM. In one embodiment, the electronic coupon includes a bar codedisplayed on the mobile device's display which may be read by an opticalscanner at the point of sale. When the coupon is used, this informationis transmitted from the point of sale back to the data processingservice 100 and stored as user preference data 242 for subsequenttargeted content distributions. If the Caltrain station in San Franciscois known to have a poor wireless signal, then the predictive schedulermodule 230 may pre-cache the targeted content 245 to the mobile device106 prior to the user's arrival at the Caltrain station (e.g., aspecified amount of time prior to 8:00 AM and/or when the mobile device106 is detected within a specified range of the Caltrain station).

By way of another example, if the user commutes to/from work in a careach day over a particular route, then the predictive scheduler module230 may generate a content distribution schedule 240 to pre-cache themobile device 106 with content related to businesses along the user'scommute route (e.g., Starbucks certificates, promotions to restaurants,etc).

In one embodiment, the predictive scheduler 230 also evaluates user data242 when generating the content distribution schedule 240. The user data242 includes user preferences collected via a questionnaire answered bythe end user and/or by monitoring the user's activity (e.g., purchasehabits, Websites visited, songs stored on mobile device, etc). The userdata 242 may also include events which the user is scheduled to attend.Returning to the example above, if the user data 242 indicates that theuser is not a coffee drinker but is a tea drinker, then the coupon mayspecify a free cup of tea. Similarly, if the user data 242 indicatesthat the user is scheduled at an out-of-town event on a particular day,then the predictive scheduler 230 will refrain from transmitting thecoupon on that day. If the user data 242 indicates that the user hasyoung children, then the predictive scheduler 230 may transmitpromotions and other content related to young children (e.g., couponsfor a toy store located along the user's commute route).

The user data 242 may include ticket purchases made on the mobile device106 including tickets to a concerts, movies, sporting events, etc. Insuch a case, this event information is utilized by the predictivescheduler 240 to generate the content distribution schedule 240. Forexample, just prior to a concert, targeted content 245 related to theperformer may be pre-cached to the mobile device. The targeted content245 in this example may include a free music video or music track,membership in a fan club, discounts on concessions at the event venue, amap of the event venue, directions to the event venue, etc.

The decision to pre-cache data to the mobile device 106 may be based onthe known wireless signal strength at the event venue. For example, ifthe signal strength for the user's wireless service provider is poor atthe event venue then the predictive scheduler module 230 may choose topre-cache all data related to the event prior to the user's arrival atthe event venue. If the user purchased a ticket to the eventelectronically using the mobile device 106, then the event ticket isdownloaded to the mobile device 106 prior to arrival at the event venue(e.g., either a specified amount of time prior to the event or when theuser is a specified distance from the event venue). In one embodiment,the ticket is displayed on the user's mobile device 106 in the form of abar code which is scanned by an optical scanner at the event venue toauthorize access.

The architecture shown in FIG. 2 may also be used to pre-cache data tothe mobile device 106 based on the user's daily work schedule and/orpredicted wireless signal strength. For example, if it is known thatcertain points along the Caltrain route have degraded wireless service(as indicated by the user location and activity data 220), then the dataprocessing service 100 may pre-cache data on the mobile device 106 thatthe user typically accesses during this period of time. For example, ifthe user typically checks news headlines on CNN.com and checks emailduring this period, then the data processing service 100 may pre-cacheCNN.com headline stories to the mobile device. Similarly, if the usertypically checks email during this period, then the mobile device 106may automatically access and download the user's email prior to arrivalat the train station.

Similarly, if a set of related content is scheduled for delivery towireless devices of users attending a concert and the wireless signalstrength is determined to be poor at the location of the concert venue,then the predictive scheduler 230 will schedule delivery of the set ofrelated content prior to arrival at the venue. For example, thepredictive scheduler may pre-cache the mobile device of a user 106 withcontent related to the concert when the user is within a specifieddistance from the concert venue and/or a specified amount of time priorto the concert. In one embodiment, the content is pre-cached to themobile device but is not triggered until the user arrives at the venue.Various different triggering events may be employed. For example, in oneembodiment, the related content is triggered upon the user entering theconcert venue with an electronic ticket purchased from the mobile device106 (e.g., by displaying a bar coded ticket on the mobile device'sdisplay). Alternatively, the related content may be triggered at acertain specified time.

A virtually unlimited number of different types of targeted content 245including promotional information, advertisements, etc, may be scheduledfor delivery to the mobile device 106 based on the user's anticipatedlocation, anticipated activity at that location, and anticipated signalstrength at that location.

B. Transmitting Targeted Content to a Mobile Device Based on LocationContext and User Data

In addition to pre-caching content to wireless data processing devices,one embodiment of the invention determines the context in which a useris at a particular location and provides targeted content based on thatcontext. As used herein, the “context” involves an evaluation of thecurrent date and time as well as the location of the end user todetermine the event which is occurring at that location. As illustratedin FIG. 4, as in prior embodiments, the data processing service 100maintains a location database 221 for associating GPS locations withvarious known event venues such as sports arenas, theaters, parks,museums and other multi-purpose venues. In addition, in the embodimentillustrated in FIG. 4, venue calendar data 402 is combined with thelocation data to generate a context database 420, comprised oflocations, dates, times, and associated events.

As illustrated in FIG. 5, each entry in the context database 420includes a date, a time, a location, an event name and an identifieruniquely identifying targeted content for the event. In one embodiment,a content selection module 445 selects a set of targeted content 446 todistribute to the end user at a particular event (or prior to the event,as described above) based on the information in the context database 420and user data 242 containing user preferences and other personal data(e.g., a user's calendar). As mentioned above, the user preferences maybe determined via a questionnaire answered by the end user and/or bymonitoring the user's activity (e.g., purchase habits, Websites visited,songs stored on mobile device, etc). The personal data may includeevents which the user is scheduled to attend such as concert events,sporting events, movies, etc.

By way of example, if the user is at the HP pavilion in San Jose, thenthe content selection module 445 first determines the context in whichthe user as at the HP pavilion. If it is for a San Jose Sharks® game,then the targeted content 446 may include a free hot dog or discountedconcessions. By contrast, if it is a Wiggles® concert, then the targetedcontent 446 may include a free membership to the Wiggles website, a freeWiggles T-shirt, and/or an advertisement for a new Disney® movie. Ineither case, the targeted content 446 may include a map to the venue,including the locations of various vendors and promotion sites for thedifferent events.

In one embodiment, the user's preferences from the user data 420 willalso be evaluated by the content selection module 445 when selectingtargeted content. For example, if the user preferences indicate that theuser is a fan of Pearl Jam, and the user is currently at a concert atthe HP pavilion, then the targeted content may include a promotionrelated to an upcoming Pearl Jam concert in the Bay Area or a freedownloadable Pearl Jam track. Various other types of targeted content446 may be identified and transmitted to the mobile device 106including, for example, local train and bus schedules at the time of theevent, promotions for nearby locations (e.g., restaurants, sportsfacilities), and free merchandise (e.g., a free audio track or t-shirt).

It should be noted that the above examples are used merely for thepurpose of illustration. The underlying principles of the invention arenot limited to any specific event types or promotion types.

C. System and Method for Location-Based Reminders

One embodiment of the invention generates location-based reminders setby the end user. As illustrated in FIG. 6, this embodiment may beimplemented with a location-based reminder application 607 a on the dataprocessing service 100 and/or a location-based reminder application 607b on the mobile device 106. The location-based reminder application 607may be a standard calendar application equipped with the location-basedreminder capabilities described herein or, alternatively, may be astand-alone application. In either case, the user sets a location-basedreminder by specifying a particular location and a message to bedisplayed upon arrival at that location. The location may be specified,for example, by entering an address, a location name (e.g., a knownpoint of interest, event venue, etc), or a more general location (e.g.,“San Francisco”).

The location-based reminders entered by the user are stored aslocation-based reminder data 621 a and 621 b on the data processingservice 100 and/or on the mobile device 106, respectively. When thelocation tracking module 205 detects that the user has arrived within alocation specified by the location-based reminder data, thelocation-based reminder application 607 b triggers the reminder, therebydisplaying the reminder on the mobile device 106. For example, a usermay specify that the next time the user is at a supermarket, a reminderto purchase certain items should be generated. Similarly, if the user isplanning on attending a concert event, the user may set a reminder topurchase a T-shirt for a family member while at the event.

In one embodiment, the reminder data is entered by the user as textwithin a text entry field displayed by the location-based reminderapplication (see, e.g., FIG. 8 and associated description below). Inanother embodiment, the reminder is transmitted to the end user as anSMS message. In this embodiment, the user update module 250 reads thelocation-based reminder data 621 a stored on the data processing service100, encapsulates the data in an SMS message, and transmits the SMSmessage to the end user upon arrival at the specified location. The SMSmessage is then displayed by an SMS application on the mobile device106.

FIG. 7 illustrates an example of location-based reminder data 621 a, 621b. As illustrated, each data entry comprises a location and a reminderassociated with the location. The locations entered by the user in theexample shown in FIG. 7 include “HP Pavilion,” “Whole Foods” and “St.Andrews Elementary School.” Different text-based reminders are enteredfor each location. For example, a grocery list is entered for WholeFoods, a reminder to purchase a T-Shirt is provided for HP pavilion, anda reminder to pickup a school project is provide for St. AndrewsElementary. In addition, for certain locations, the user may specify adate, time, and event name (e.g., using events stored within the contextdatabase 420 described above). For example, in FIG. 7, the user hasselected a specific event at the HP pavilion at which to receive thereminder. The reminder will then only be triggered if the user is at thespecified location at the specific date/time of the event. By contrast,the reminders associated with Whole Foods and St. Andrews Elementarywill be triggered any time the user arrives at these locations.

FIG. 8 illustrates one embodiment of a graphical user interface (GUI)800 for entering location-based reminders, either from the mobile device106 or a client computer 110. As mentioned above, the reminder GUI maybe a stand-alone reminder application and/or may be integrated within anexisting calendar application. In the latter case, when the user sets anew calendar entry, the new calendar entry window provides options suchas those shown in FIG. 8 for setting a location-based reminder (eitherin lieu of or in addition to a standard date/time entry).

As shown in FIG. 8, the new reminder entry includes a field 804 formanually specifying a particular location. In one embodiment, a “findlocation” button 802 is selected to allow the user to search for andverify a known address, city, point of interest, restaurant, etc, or anyother type of location. In one embodiment, the search and verificationis accomplished by performing a query to the location database 221described above using data entered by the user. Upon selecting alocation, a description of the location automatically appears within thelocation field 804.

In addition, a checkbox 810 is provided which, when selected, allows theuser to specify that the location-based reminder should only betriggered upon arrival at the location for a particular event.Specifically, an event field 806 is provided for entering an eventmanually. In addition, in one embodiment, a “find event” button 805 isselected to allow the user to search for and verify a known event. Uponselecting an event, a description of the event appears within the eventfield 806, the date of the event appears within data entry field 807 andthe start and end times for the event appear within data entry fields808 and 809, respectively. In one embodiment, the event data within thecontext database 420 described above is searched upon selection of thefind event button 805. In one embodiment, rather than entering aparticular event, the user may simply select a date and time within dataentry fields 807-809.

Throughout the discussion above, various details have been omitted toavoid obscuring the pertinent aspects of the invention. For example,both the data processing service 100 and the mobile devices 106, 107include network interface hardware and software for communicating overthe data network 120 and the wireless networks 121, 122, respectively.The network interface hardware/software is implemented with knownnetworking components for packetizing data and transmitting the dataover a network according to a particular network protocol. For example,if the data network 120 described herein is the Internet, then thevarious networking components packetize data into TCP/IP packets priorto transmission over the network. Similarly, the various functionalmodules and databases described herein may be executed across aplurality of servers which communicate over a local area network (LAN)using Ethernet at the data link and physical layers and TCP/IP at thetransport/network layers of the OSI model. Moreover, the databases maybe implemented using a Storage Area Network (SAN) or similar high-speednetworking implementations.

Moreover, in an embodiment of the invention in which the user connectsto the data processing service 100 via a Web browser, various well knownfunctional modules are implemented to receive input, process the inputand dynamically generate Web pages containing the results. The Web pagesmay be formatted according to the well known HyperText Markup Language(“HTML”) or Extensible HTML (“XHTML”) formats, and may providenavigation to other Web pages via hypertext links. Web pages arerequested, dynamically generated, and transmitted from Web servers onthe data processing service 100 using the Hypertext Transfer Protocol(HTTP). One embodiment of the invention employs application softwarewritten in PHP (a well known scripting language designed for producingdynamic web pages) running on Apache™ Web servers served off Linuxplatforms. In addition, in one embodiment, the databases describedherein are Microsoft SQL databases or MySQL databases. It should benoted, however, that the underlying principles of the invention are notlimited to any particular type of communications protocol or networkarchitecture.

Although some of the embodiments of the invention are describedseparately and with different figures, all of these embodiments may becombined and implemented within a single comprehensive system. Forexample, the various system components illustrated in FIGS. 2, 4 and 6may be combined and executed within a single data processing service100.

Embodiments of the invention may include various steps as set forthabove. The steps may be embodied in machine-executable instructionswhich cause a general-purpose or special-purpose processor to performcertain steps. Alternatively, these steps may be performed by specifichardware components that contain hardwired logic for performing thesteps, or by any combination of programmed computer components andcustom hardware components.

Elements of the present invention may also be provided as amachine-readable medium for storing the machine-executable instructions.The machine-readable medium may include, but is not limited to, floppydiskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs,RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media orother type of media/machine-readable medium suitable for storingelectronic instructions. For example, the present invention may bedownloaded as a computer program which may be transferred from a remotecomputer (e.g., a server) to a requesting computer (e.g., a client) byway of data signals embodied in a carrier wave or other propagationmedium via a communication link (e.g., a modem or network connection).

Throughout the foregoing description, for the purposes of explanation,numerous specific details were set forth in order to provide a thoroughunderstanding of the invention. It will be apparent, however, to oneskilled in the art that the invention may be practiced without some ofthese specific details. For example, it will be readily apparent tothose of skill in the art that the functional modules such as wizardsand other logic may be implemented as software, hardware or anycombination thereof. Accordingly, the scope and spirit of the inventionshould be judged in terms of the claims which follow.

What is claimed is:
 1. A system for storing and triggeringlocation-based reminders comprising: a location database to store aplurality of different locations including event facilities, points ofinterest, and one or more personal locations specified by an end user,the location database associating each of the different locations with aGlobal Positioning System (GPS) location or range of GPS locations; alocation-based reminder application to receive user input related to oneor more location-based reminders, each location-based reminderassociating a particular location from the location database withreminder data input by the user, wherein the location-based reminderapplication comprises logic for generating an SMS message containing thereminder data, wherein the location-based reminder application comprisesa graphical user interface (GUI) comprising: a first field for receivingthe reminder data input by a user; a second field for specifying alocation within which the location-based application is to trigger thereminder; and a third field for specifying an event during which thelocation-based application is to trigger the reminder, the eventcomprising a specific location, date and time; and wherein, in responseto detecting the user's mobile device arriving within a particularlocation associated with the reminder data, the location-based reminderapplication triggering the reminder using a visual and/or audiblenotification on the user's mobile device.
 2. The system as in claim 1wherein the location-based reminder application further includes dataentered by the user to specify a date and time period in addition to thelocation, the location based reminder only triggering the reminder ifthe mobile device is at the particular location at the specified dateand time period.
 3. The system as in claim 2 further comprising: acontext database to store context data for particular locations withinthe location database, the context data specifying event information forthe particular locations including a date, time, and event informationfor each of the particular locations, the user selecting an entry fromthe context database to specify the date and time period during which toreceive the location-based reminder.
 4. The system as in claim 1 whereinthe location-based reminder, or portion thereof, is executed within adata processing service communicatively coupled to the mobile device. 5.The system as in claim 1 further comprising: a selectable graphicalelement for identifying a location within the location database, whereinupon selection, a name associated with the location is automaticallydisplayed within the second field.
 6. The system as in claim 1 furthercomprising: a selectable graphical element for identifying the eventwithin a context database, the context database storing context data forparticular locations within the location database, the context dataspecifying event information for the particular locations including adate, time, and event information for each of the particular locations,wherein upon selection, a name associated with the event isautomatically displayed within the third field.
 7. Acomputer-implemented method for storing and triggering location-basedreminders comprising: providing a location database to store a pluralityof different locations including event facilities, points of interest,and one or more personal locations specified by an end user, thelocation database associating each of the different locations with aGlobal Positioning System (GPS) location or range of GPS locations;executing a location-based reminder application to receive user inputrelated to one or more location-based reminders, each location-basedreminder associating a particular location from the location databasewith reminder data input by the user, wherein the location-basedreminder application comprises a graphical user interface (GUI)comprising: a first field for receiving the reminder data input by auser; a second field for specifying a location within which thelocation-based application is to trigger the reminder; and a third fieldfor specifying an event during which the location-based application isto trigger the reminder, the event comprising a specific location, dateand time; and wherein, in response to detecting the user's mobile devicearriving within a particular location associated with the reminder data,the location-based reminder application triggering the reminder using avisual and/or audible notification on the user's mobile device.
 8. Themethod as in claim 7 wherein the location-based reminder applicationfurther includes data entered by the user to specify a date and timeperiod in addition to the location, the location based reminder onlytriggering the reminder if the mobile device is at the particularlocation at the specified date and time period.
 9. The method as inclaim 8 further comprising: providing a context database to storecontext data for particular locations within the location database, thecontext data specifying event information for the particular locationsincluding a date, time, and event information for each of the particularlocations, the user selecting an entry from the context database tospecify the date and time period during which to receive thelocation-based reminder.
 10. The method as in claim 7 wherein thelocation-based reminder, or portion thereof, is executed within a dataprocessing service communicatively coupled to the mobile device.
 11. Themethod as in claim 7 further comprising: providing a selectablegraphical element for identifying a location within the locationdatabase, wherein upon selection, a name associated with the location isautomatically displayed within the second field.
 12. The method as inclaim 7 further comprising: providing a selectable graphical element foridentifying the event within a context database, the context databasestoring context data for particular locations within the locationdatabase, the context data specifying event information for theparticular locations including a date, time, and event information foreach of the particular locations, wherein upon selection, a nameassociated with the event is automatically displayed within the thirdfield.